/*
 * ﻿Copyright (C) 2013 Atlas of Living Australia
 * All Rights Reserved.
 *
 * The contents of this file are subject to the Mozilla Public
 * License Version 1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of
 * the License at http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * rights and limitations under the License.
 */

package ala.soils2sat

import au.org.ala.soils2sat.LogService
import javax.servlet.http.HttpServletRequest

class S2SLoggingFilters {

    def springSecurityService

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                def userAgent = request.getHeader("user-agent")
                def logService = new LogService()

                def httprequest = (HttpServletRequest) request;
                String requestUri = request.getRequestURI()
                def username = springSecurityService.currentUser?.username ?: "N/A"

                logService.log "Username: ${username} IP: ${httprequest.remoteAddr} Session: ${request.session.id} UA: ${userAgent} URI: ${requestUri}"

            }
            after = { Map model ->

            }
            afterView = { Exception e ->

            }
        }
    }
}
